package com.shujia.wyh.day28;

import java.lang.reflect.Field;

/*
    public void setProperty(Object obj, String propertyName, Object value){}，
    此方法可将obj对象中名为propertyName的属性的值设置为value。

 */
public class Tool {
    public void setProperty(Object obj, String propertyName, Object value) {
        //通过反射实现
        //通过反射获取对象对应的字节码文件对象
        Class<?> c = obj.getClass();
        //通过字节码文件对象获取对应的成员变量形成一个对象
        try {
            Field field = c.getDeclaredField(propertyName);
            //设置暴力访问
            field.setAccessible(true);
            field.set(obj, value);
        }  catch (Exception e) {
            e.printStackTrace();
        }
    }
}
